<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>Homework Hub: packages/jQuery.Validation.1.9.0.1/Content/Scripts/jquery.validate.min.js Quellcode</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Homework Hub
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Suchen');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Hauptseite</span></a></li>
      <li><a href="namespaces.html"><span>Pakete</span></a></li>
      <li><a href="annotated.html"><span>Klassen</span></a></li>
      <li class="current"><a href="files.html"><span>Dateien</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Suchen" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>Auflistung&#160;der&#160;Dateien</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Alle</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Klassen</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namensbereiche</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Funktionen</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Propertys</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_93501a11e921083efbd154e0cdff5f10.html">packages</a></li><li class="navelem"><a class="el" href="dir_4818e3d8facea8732e7bc8cc28707e4d.html">jQuery.Validation.1.9.0.1</a></li><li class="navelem"><a class="el" href="dir_8490978f9ed327772e83626e26ac26dc.html">Content</a></li><li class="navelem"><a class="el" href="dir_afc322d332520f20e17934af0080c257.html">Scripts</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">jquery.validate.min.js</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;(<span class="keyword">function</span>(c){c.extend(c.fn,{validate:<span class="keyword">function</span>(a){<span class="keywordflow">if</span>(<span class="keyword">this</span>.length){var b=c.data(<span class="keyword">this</span>[0],<span class="stringliteral">&quot;validator&quot;</span>);<span class="keywordflow">if</span>(b)<span class="keywordflow">return</span> b;this.attr(<span class="stringliteral">&quot;novalidate&quot;</span>,<span class="stringliteral">&quot;novalidate&quot;</span>);b=<span class="keyword">new</span> c.validator(a,<span class="keyword">this</span>[0]);c.data(<span class="keyword">this</span>[0],<span class="stringliteral">&quot;validator&quot;</span>,b);<span class="keywordflow">if</span>(b.settings.onsubmit){a=this.find(<span class="stringliteral">&quot;input, button&quot;</span>);a.filter(<span class="stringliteral">&quot;.cancel&quot;</span>).click(<span class="keyword">function</span>(){b.cancelSubmit=<span class="keyword">true</span>});b.settings.submitHandler&amp;&amp;a.filter(<span class="stringliteral">&quot;:submit&quot;</span>).click(<span class="keyword">function</span>(){b.submitButton=<span class="keyword">this</span>});this.submit(<span class="keyword">function</span>(d){<span class="keyword">function</span> e(){<span class="keywordflow">if</span>(b.settings.submitHandler){<span class="keywordflow">if</span>(b.submitButton)var f=c(<span class="stringliteral">&quot;&lt;input type=&#39;hidden&#39;/&gt;&quot;</span>).attr(<span class="stringliteral">&quot;name&quot;</span>,</div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;b.submitButton.name).val(b.submitButton.value).appendTo(b.currentForm);b.settings.submitHandler.call(b,b.currentForm);b.submitButton&amp;&amp;f.remove();<span class="keywordflow">return</span> <span class="keyword">false</span>}<span class="keywordflow">return</span> <span class="keyword">true</span>}b.settings.debug&amp;&amp;d.preventDefault();<span class="keywordflow">if</span>(b.cancelSubmit){b.cancelSubmit=<span class="keyword">false</span>;<span class="keywordflow">return</span> e()}<span class="keywordflow">if</span>(b.form()){<span class="keywordflow">if</span>(b.pendingRequest){b.formSubmitted=<span class="keyword">true</span>;<span class="keywordflow">return</span> <span class="keyword">false</span>}<span class="keywordflow">return</span> e()}<span class="keywordflow">else</span>{b.focusInvalid();<span class="keywordflow">return</span> <span class="keyword">false</span>}})}<span class="keywordflow">return</span> b}<span class="keywordflow">else</span> a&amp;&amp;a.debug&amp;&amp;window.console&amp;&amp;console.warn(<span class="stringliteral">&quot;nothing selected, can&#39;t validate, returning nothing&quot;</span>)},valid:<span class="keyword">function</span>(){<span class="keywordflow">if</span>(c(<span class="keyword">this</span>[0]).is(<span class="stringliteral">&quot;form&quot;</span>))<span class="keywordflow">return</span> this.validate().form();</div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keywordflow">else</span>{var a=<span class="keyword">true</span>,b=c(<span class="keyword">this</span>[0].form).validate();this.each(<span class="keyword">function</span>(){a&amp;=b.element(<span class="keyword">this</span>)});<span class="keywordflow">return</span> a}},removeAttrs:<span class="keyword">function</span>(a){var b={},d=<span class="keyword">this</span>;c.each(a.split(/\s/),<span class="keyword">function</span>(e,f){b[f]=d.attr(f);d.removeAttr(f)});<span class="keywordflow">return</span> b},rules:<span class="keyword">function</span>(a,b){var d=<span class="keyword">this</span>[0];<span class="keywordflow">if</span>(a){var e=c.data(d.form,<span class="stringliteral">&quot;validator&quot;</span>).settings,f=e.rules,g=c.validator.staticRules(d);<span class="keywordflow">switch</span>(a){<span class="keywordflow">case</span> <span class="stringliteral">&quot;add&quot;</span>:c.extend(g,c.validator.normalizeRule(b));f[d.name]=g;<span class="keywordflow">if</span>(b.messages)e.messages[d.name]=c.extend(e.messages[d.name],b.messages);<span class="keywordflow">break</span>;<span class="keywordflow">case</span> <span class="stringliteral">&quot;remove&quot;</span>:<span class="keywordflow">if</span>(!b){<span class="keyword">delete</span> f[d.name];</div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keywordflow">return</span> g}var h={};c.each(b.split(/\s/),<span class="keyword">function</span>(j,i){h[i]=g[i];<span class="keyword">delete</span> g[i]});<span class="keywordflow">return</span> h}}d=c.validator.normalizeRules(c.extend({},c.validator.metadataRules(d),c.validator.classRules(d),c.validator.attributeRules(d),c.validator.staticRules(d)),d);<span class="keywordflow">if</span>(d.required){e=d.required;<span class="keyword">delete</span> d.required;d=c.extend({required:e},d)}<span class="keywordflow">return</span> d}});c.extend(c.expr[<span class="stringliteral">&quot;:&quot;</span>],{blank:<span class="keyword">function</span>(a){<span class="keywordflow">return</span>!c.trim(<span class="stringliteral">&quot;&quot;</span>+a.value)},filled:<span class="keyword">function</span>(a){<span class="keywordflow">return</span>!!c.trim(<span class="stringliteral">&quot;&quot;</span>+a.value)},unchecked:<span class="keyword">function</span>(a){<span class="keywordflow">return</span>!a.checked}});c.validator=<span class="keyword">function</span>(a,</div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;b){this.settings=c.extend(<span class="keyword">true</span>,{},c.validator.defaults,a);this.currentForm=b;this.init()};c.validator.format=<span class="keyword">function</span>(a,b){<span class="keywordflow">if</span>(arguments.length==1)<span class="keywordflow">return</span> <span class="keyword">function</span>(){var d=c.makeArray(arguments);d.unshift(a);<span class="keywordflow">return</span> c.validator.format.apply(<span class="keyword">this</span>,d)};<span class="keywordflow">if</span>(arguments.length&gt;2&amp;&amp;b.constructor!=Array)b=c.makeArray(arguments).slice(1);<span class="keywordflow">if</span>(b.constructor!=Array)b=[b];c.each(b,<span class="keyword">function</span>(d,e){a=a.replace(RegExp(<span class="stringliteral">&quot;\\{&quot;</span>+d+<span class="stringliteral">&quot;\\}&quot;</span>,<span class="stringliteral">&quot;g&quot;</span>),e)});<span class="keywordflow">return</span> a};c.extend(c.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:<span class="stringliteral">&quot;error&quot;</span>,</div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;validClass:<span class="stringliteral">&quot;valid&quot;</span>,errorElement:<span class="stringliteral">&quot;label&quot;</span>,focusInvalid:<span class="keyword">true</span>,errorContainer:c([]),errorLabelContainer:c([]),onsubmit:<span class="keyword">true</span>,ignore:<span class="stringliteral">&quot;:hidden&quot;</span>,ignoreTitle:<span class="keyword">false</span>,onfocusin:<span class="keyword">function</span>(a){this.lastActive=a;<span class="keywordflow">if</span>(this.settings.focusCleanup&amp;&amp;!<span class="keyword">this</span>.blockFocusCleanup){this.settings.unhighlight&amp;&amp;this.settings.unhighlight.call(<span class="keyword">this</span>,a,this.settings.errorClass,<span class="keyword">this</span>.settings.validClass);this.addWrapper(this.errorsFor(a)).hide()}},onfocusout:<span class="keyword">function</span>(a){<span class="keywordflow">if</span>(!this.checkable(a)&amp;&amp;(a.name in this.submitted||!this.optional(a)))this.element(a)},</div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;onkeyup:<span class="keyword">function</span>(a){<span class="keywordflow">if</span>(a.name in <span class="keyword">this</span>.submitted||a==<span class="keyword">this</span>.lastElement)this.element(a)},onclick:<span class="keyword">function</span>(a){<span class="keywordflow">if</span>(a.name in <span class="keyword">this</span>.submitted)this.element(a);<span class="keywordflow">else</span> a.parentNode.name in this.submitted&amp;&amp;this.element(a.parentNode)},highlight:<span class="keyword">function</span>(a,b,d){a.type===<span class="stringliteral">&quot;radio&quot;</span>?this.findByName(a.name).addClass(b).removeClass(d):c(a).addClass(b).removeClass(d)},unhighlight:<span class="keyword">function</span>(a,b,d){a.type===<span class="stringliteral">&quot;radio&quot;</span>?this.findByName(a.name).removeClass(b).addClass(d):c(a).removeClass(b).addClass(d)}},setDefaults:<span class="keyword">function</span>(a){c.extend(c.validator.defaults,</div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;a)},messages:{required:<span class="stringliteral">&quot;This field is required.&quot;</span>,remote:<span class="stringliteral">&quot;Please fix this field.&quot;</span>,email:<span class="stringliteral">&quot;Please enter a valid email address.&quot;</span>,url:<span class="stringliteral">&quot;Please enter a valid URL.&quot;</span>,date:<span class="stringliteral">&quot;Please enter a valid date.&quot;</span>,dateISO:<span class="stringliteral">&quot;Please enter a valid date (ISO).&quot;</span>,number:<span class="stringliteral">&quot;Please enter a valid number.&quot;</span>,digits:<span class="stringliteral">&quot;Please enter only digits.&quot;</span>,creditcard:<span class="stringliteral">&quot;Please enter a valid credit card number.&quot;</span>,equalTo:<span class="stringliteral">&quot;Please enter the same value again.&quot;</span>,accept:<span class="stringliteral">&quot;Please enter a value with a valid extension.&quot;</span>,maxlength:c.validator.format(<span class="stringliteral">&quot;Please enter no more than {0} characters.&quot;</span>),</div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;minlength:c.validator.format(<span class="stringliteral">&quot;Please enter at least {0} characters.&quot;</span>),rangelength:c.validator.format(<span class="stringliteral">&quot;Please enter a value between {0} and {1} characters long.&quot;</span>),range:c.validator.format(<span class="stringliteral">&quot;Please enter a value between {0} and {1}.&quot;</span>),max:c.validator.format(<span class="stringliteral">&quot;Please enter a value less than or equal to {0}.&quot;</span>),min:c.validator.format(<span class="stringliteral">&quot;Please enter a value greater than or equal to {0}.&quot;</span>)},autoCreateRanges:<span class="keyword">false</span>,prototype:{init:<span class="keyword">function</span>(){<span class="keyword">function</span> a(e){var f=c.data(<span class="keyword">this</span>[0].form,<span class="stringliteral">&quot;validator&quot;</span>),g=<span class="stringliteral">&quot;on&quot;</span>+e.type.replace(/^validate/,</div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="stringliteral">&quot;&quot;</span>);f.settings[g]&amp;&amp;f.settings[g].call(f,<span class="keyword">this</span>[0],e)}this.labelContainer=c(this.settings.errorLabelContainer);this.errorContext=this.labelContainer.length&amp;&amp;this.labelContainer||c(this.currentForm);this.containers=c(this.settings.errorContainer).add(this.settings.errorLabelContainer);this.submitted={};this.valueCache={};this.pendingRequest=0;this.pending={};this.invalid={};this.reset();var b=this.groups={};c.each(this.settings.groups,<span class="keyword">function</span>(e,f){c.each(f.split(/\s/),<span class="keyword">function</span>(g,h){b[h]=e})});var d=</div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;this.settings.rules;c.each(d,<span class="keyword">function</span>(e,f){d[e]=c.validator.normalizeRule(f)});c(this.currentForm).validateDelegate(<span class="stringliteral">&quot;[type=&#39;text&#39;], [type=&#39;password&#39;], [type=&#39;file&#39;], select, textarea, [type=&#39;number&#39;], [type=&#39;search&#39;] ,[type=&#39;tel&#39;], [type=&#39;url&#39;], [type=&#39;email&#39;], [type=&#39;datetime&#39;], [type=&#39;date&#39;], [type=&#39;month&#39;], [type=&#39;week&#39;], [type=&#39;time&#39;], [type=&#39;datetime-local&#39;], [type=&#39;range&#39;], [type=&#39;color&#39;] &quot;</span>,<span class="stringliteral">&quot;focusin focusout keyup&quot;</span>,a).validateDelegate(<span class="stringliteral">&quot;[type=&#39;radio&#39;], [type=&#39;checkbox&#39;], select, option&quot;</span>,<span class="stringliteral">&quot;click&quot;</span>,</div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;a);this.settings.invalidHandler&amp;&amp;c(this.currentForm).bind(<span class="stringliteral">&quot;invalid-form.validate&quot;</span>,this.settings.invalidHandler)},form:<span class="keyword">function</span>(){this.checkForm();c.extend(this.submitted,this.errorMap);this.invalid=c.extend({},this.errorMap);this.valid()||c(this.currentForm).triggerHandler(<span class="stringliteral">&quot;invalid-form&quot;</span>,[<span class="keyword">this</span>]);this.showErrors();<span class="keywordflow">return</span> this.valid()},checkForm:<span class="keyword">function</span>(){this.prepareForm();<span class="keywordflow">for</span>(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);<span class="keywordflow">return</span> this.valid()},element:<span class="keyword">function</span>(a){this.lastElement=</div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;a=this.validationTargetFor(this.clean(a));this.prepareElement(a);this.currentElements=c(a);var b=this.check(a);<span class="keywordflow">if</span>(b)<span class="keyword">delete</span> this.invalid[a.name];<span class="keywordflow">else</span> this.invalid[a.name]=<span class="keyword">true</span>;<span class="keywordflow">if</span>(!this.numberOfInvalids())this.toHide=this.toHide.add(this.containers);this.showErrors();<span class="keywordflow">return</span> b},showErrors:<span class="keyword">function</span>(a){<span class="keywordflow">if</span>(a){c.extend(this.errorMap,a);this.errorList=[];<span class="keywordflow">for</span>(var b in a)this.errorList.push({message:a[b],element:this.findByName(b)[0]});this.successList=c.grep(this.successList,<span class="keyword">function</span>(d){<span class="keywordflow">return</span>!(d.name in a)})}this.settings.showErrors?</div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;this.settings.showErrors.call(<span class="keyword">this</span>,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:<span class="keyword">function</span>(){c.fn.resetForm&amp;&amp;c(this.currentForm).resetForm();this.submitted={};this.lastElement=null;this.prepareForm();this.hideErrors();this.elements().removeClass(this.settings.errorClass)},numberOfInvalids:<span class="keyword">function</span>(){<span class="keywordflow">return</span> this.objectLength(this.invalid)},objectLength:<span class="keyword">function</span>(a){var b=0,d;<span class="keywordflow">for</span>(d in a)b++;<span class="keywordflow">return</span> b},hideErrors:<span class="keyword">function</span>(){this.addWrapper(this.toHide).hide()},valid:<span class="keyword">function</span>(){<span class="keywordflow">return</span> this.size()==</div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;0},size:<span class="keyword">function</span>(){<span class="keywordflow">return</span> this.errorList.length},focusInvalid:<span class="keyword">function</span>(){<span class="keywordflow">if</span>(this.settings.focusInvalid)<span class="keywordflow">try</span>{c(this.findLastActive()||this.errorList.length&amp;&amp;<span class="keyword">this</span>.errorList[0].element||[]).filter(<span class="stringliteral">&quot;:visible&quot;</span>).focus().trigger(<span class="stringliteral">&quot;focusin&quot;</span>)}<span class="keywordflow">catch</span>(a){}},findLastActive:<span class="keyword">function</span>(){var a=this.lastActive;<span class="keywordflow">return</span> a&amp;&amp;c.grep(this.errorList,<span class="keyword">function</span>(b){<span class="keywordflow">return</span> b.element.name==a.name}).length==1&amp;&amp;a},elements:<span class="keyword">function</span>(){var a=<span class="keyword">this</span>,b={};<span class="keywordflow">return</span> c(this.currentForm).find(<span class="stringliteral">&quot;input, select, textarea&quot;</span>).not(<span class="stringliteral">&quot;:submit, :reset, :image, [disabled]&quot;</span>).not(this.settings.ignore).filter(<span class="keyword">function</span>(){!this.name&amp;&amp;</div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;a.settings.debug&amp;&amp;window.console&amp;&amp;console.error(<span class="stringliteral">&quot;%o has no name assigned&quot;</span>,<span class="keyword">this</span>);<span class="keywordflow">if</span>(this.name in b||!a.objectLength(c(<span class="keyword">this</span>).rules()))<span class="keywordflow">return</span> <span class="keyword">false</span>;<span class="keywordflow">return</span> b[this.name]=<span class="keyword">true</span>})},clean:<span class="keyword">function</span>(a){<span class="keywordflow">return</span> c(a)[0]},errors:<span class="keyword">function</span>(){<span class="keywordflow">return</span> c(this.settings.errorElement+<span class="stringliteral">&quot;.&quot;</span>+<span class="keyword">this</span>.settings.errorClass,<span class="keyword">this</span>.errorContext)},reset:<span class="keyword">function</span>(){this.successList=[];this.errorList=[];this.errorMap={};this.toShow=c([]);this.toHide=c([]);this.currentElements=c([])},prepareForm:<span class="keyword">function</span>(){this.reset();this.toHide=this.errors().add(this.containers)},</div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;prepareElement:<span class="keyword">function</span>(a){this.reset();this.toHide=this.errorsFor(a)},check:<span class="keyword">function</span>(a){a=this.validationTargetFor(this.clean(a));var b=c(a).rules(),d=<span class="keyword">false</span>,e;<span class="keywordflow">for</span>(e in b){var f={method:e,parameters:b[e]};<span class="keywordflow">try</span>{var g=c.validator.methods[e].call(<span class="keyword">this</span>,a.value.replace(/\r/g,<span class="stringliteral">&quot;&quot;</span>),a,f.parameters);<span class="keywordflow">if</span>(g==<span class="stringliteral">&quot;dependency-mismatch&quot;</span>)d=<span class="keyword">true</span>;<span class="keywordflow">else</span>{d=<span class="keyword">false</span>;<span class="keywordflow">if</span>(g==<span class="stringliteral">&quot;pending&quot;</span>){this.toHide=this.toHide.not(this.errorsFor(a));<span class="keywordflow">return</span>}<span class="keywordflow">if</span>(!g){this.formatAndAdd(a,f);<span class="keywordflow">return</span> <span class="keyword">false</span>}}}<span class="keywordflow">catch</span>(h){this.settings.debug&amp;&amp;window.console&amp;&amp;console.log(<span class="stringliteral">&quot;exception occured when checking element &quot;</span>+</div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;a.id+<span class="stringliteral">&quot;, check the &#39;&quot;</span>+f.method+<span class="stringliteral">&quot;&#39; method&quot;</span>,h);<span class="keywordflow">throw</span> h;}}<span class="keywordflow">if</span>(!d){this.objectLength(b)&amp;&amp;this.successList.push(a);<span class="keywordflow">return</span> <span class="keyword">true</span>}},customMetaMessage:<span class="keyword">function</span>(a,b){<span class="keywordflow">if</span>(c.metadata){var d=this.settings.meta?c(a).metadata()[this.settings.meta]:c(a).metadata();<span class="keywordflow">return</span> d&amp;&amp;d.messages&amp;&amp;d.messages[b]}},customMessage:<span class="keyword">function</span>(a,b){var d=this.settings.messages[a];<span class="keywordflow">return</span> d&amp;&amp;(d.constructor==String?d:d[b])},findDefined:<span class="keyword">function</span>(){<span class="keywordflow">for</span>(var a=0;a&lt;arguments.length;a++)<span class="keywordflow">if</span>(arguments[a]!==undefined)<span class="keywordflow">return</span> arguments[a]},defaultMessage:<span class="keyword">function</span>(a,</div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;b){<span class="keywordflow">return</span> this.findDefined(this.customMessage(a.name,b),<span class="keyword">this</span>.customMetaMessage(a,b),!this.settings.ignoreTitle&amp;&amp;a.title||undefined,c.validator.messages[b],<span class="stringliteral">&quot;&lt;strong&gt;Warning: No message defined for &quot;</span>+a.name+<span class="stringliteral">&quot;&lt;/strong&gt;&quot;</span>)},formatAndAdd:<span class="keyword">function</span>(a,b){var d=this.defaultMessage(a,b.method),e=/\$?\{(\d+)\}/g;<span class="keywordflow">if</span>(typeof d==<span class="stringliteral">&quot;function&quot;</span>)d=d.call(<span class="keyword">this</span>,b.parameters,a);<span class="keywordflow">else</span> <span class="keywordflow">if</span>(e.test(d))d=jQuery.format(d.replace(e,<span class="stringliteral">&quot;{$1}&quot;</span>),b.parameters);this.errorList.push({message:d,element:a});this.errorMap[a.name]=d;this.submitted[a.name]=</div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;d},addWrapper:<span class="keyword">function</span>(a){<span class="keywordflow">if</span>(this.settings.wrapper)a=a.add(a.parent(<span class="keyword">this</span>.settings.wrapper));<span class="keywordflow">return</span> a},defaultShowErrors:<span class="keyword">function</span>(){<span class="keywordflow">for</span>(var a=0;this.errorList[a];a++){var b=this.errorList[a];this.settings.highlight&amp;&amp;this.settings.highlight.call(<span class="keyword">this</span>,b.element,<span class="keyword">this</span>.settings.errorClass,<span class="keyword">this</span>.settings.validClass);this.showLabel(b.element,b.message)}<span class="keywordflow">if</span>(this.errorList.length)this.toShow=this.toShow.add(this.containers);<span class="keywordflow">if</span>(this.settings.success)<span class="keywordflow">for</span>(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);</div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keywordflow">if</span>(this.settings.unhighlight){a=0;<span class="keywordflow">for</span>(b=this.validElements();b[a];a++)this.settings.unhighlight.call(<span class="keyword">this</span>,b[a],<span class="keyword">this</span>.settings.errorClass,<span class="keyword">this</span>.settings.validClass)}this.toHide=this.toHide.not(this.toShow);this.hideErrors();this.addWrapper(this.toShow).show()},validElements:<span class="keyword">function</span>(){<span class="keywordflow">return</span> this.currentElements.not(this.invalidElements())},invalidElements:<span class="keyword">function</span>(){<span class="keywordflow">return</span> c(this.errorList).map(<span class="keyword">function</span>(){<span class="keywordflow">return</span> this.element})},showLabel:<span class="keyword">function</span>(a,b){var d=this.errorsFor(a);<span class="keywordflow">if</span>(d.length){d.removeClass(this.settings.validClass).addClass(this.settings.errorClass);</div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;d.attr(<span class="stringliteral">&quot;generated&quot;</span>)&amp;&amp;d.html(b)}<span class="keywordflow">else</span>{d=c(<span class="stringliteral">&quot;&lt;&quot;</span>+this.settings.errorElement+<span class="stringliteral">&quot;/&gt;&quot;</span>).attr({<span class="stringliteral">&quot;for&quot;</span>:this.idOrName(a),generated:<span class="keyword">true</span>}).addClass(this.settings.errorClass).html(b||<span class="stringliteral">&quot;&quot;</span>);<span class="keywordflow">if</span>(this.settings.wrapper)d=d.hide().show().wrap(<span class="stringliteral">&quot;&lt;&quot;</span>+this.settings.wrapper+<span class="stringliteral">&quot;/&gt;&quot;</span>).parent();this.labelContainer.append(d).length||(this.settings.errorPlacement?this.settings.errorPlacement(d,c(a)):d.insertAfter(a))}<span class="keywordflow">if</span>(!b&amp;&amp;this.settings.success){d.text(<span class="stringliteral">&quot;&quot;</span>);typeof this.settings.success==<span class="stringliteral">&quot;string&quot;</span>?d.addClass(this.settings.success):this.settings.success(d)}this.toShow=</div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;this.toShow.add(d)},errorsFor:<span class="keyword">function</span>(a){var b=this.idOrName(a);<span class="keywordflow">return</span> this.errors().filter(<span class="keyword">function</span>(){<span class="keywordflow">return</span> c(<span class="keyword">this</span>).attr(<span class="stringliteral">&quot;for&quot;</span>)==b})},idOrName:<span class="keyword">function</span>(a){<span class="keywordflow">return</span> this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:<span class="keyword">function</span>(a){<span class="keywordflow">if</span>(this.checkable(a))a=this.findByName(a.name).not(this.settings.ignore)[0];<span class="keywordflow">return</span> a},checkable:<span class="keyword">function</span>(a){<span class="keywordflow">return</span>/radio|checkbox/i.test(a.type)},findByName:<span class="keyword">function</span>(a){var b=this.currentForm;<span class="keywordflow">return</span> c(document.getElementsByName(a)).map(<span class="keyword">function</span>(d,</div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;e){<span class="keywordflow">return</span> e.form==b&amp;&amp;e.name==a&amp;&amp;e||null})},getLength:<span class="keyword">function</span>(a,b){<span class="keywordflow">switch</span>(b.nodeName.toLowerCase()){<span class="keywordflow">case</span> <span class="stringliteral">&quot;select&quot;</span>:<span class="keywordflow">return</span> c(<span class="stringliteral">&quot;option:selected&quot;</span>,b).length;<span class="keywordflow">case</span> <span class="stringliteral">&quot;input&quot;</span>:<span class="keywordflow">if</span>(this.checkable(b))<span class="keywordflow">return</span> this.findByName(b.name).filter(<span class="stringliteral">&quot;:checked&quot;</span>).length}<span class="keywordflow">return</span> a.length},depend:<span class="keyword">function</span>(a,b){<span class="keywordflow">return</span> this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):<span class="keyword">true</span>},dependTypes:{<span class="stringliteral">&quot;boolean&quot;</span>:<span class="keyword">function</span>(a){<span class="keywordflow">return</span> a},<span class="keywordtype">string</span>:<span class="keyword">function</span>(a,b){<span class="keywordflow">return</span>!!c(a,b.form).length},<span class="stringliteral">&quot;function&quot;</span>:<span class="keyword">function</span>(a,b){<span class="keywordflow">return</span> a(b)}},optional:<span class="keyword">function</span>(a){<span class="keywordflow">return</span>!c.validator.methods.required.call(<span class="keyword">this</span>,</div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;c.trim(a.value),a)&amp;&amp;<span class="stringliteral">&quot;dependency-mismatch&quot;</span>},startRequest:<span class="keyword">function</span>(a){<span class="keywordflow">if</span>(!this.pending[a.name]){this.pendingRequest++;this.pending[a.name]=<span class="keyword">true</span>}},stopRequest:<span class="keyword">function</span>(a,b){this.pendingRequest--;<span class="keywordflow">if</span>(this.pendingRequest&lt;0)this.pendingRequest=0;<span class="keyword">delete</span> this.pending[a.name];<span class="keywordflow">if</span>(b&amp;&amp;this.pendingRequest==0&amp;&amp;this.formSubmitted&amp;&amp;this.form()){c(this.currentForm).submit();this.formSubmitted=<span class="keyword">false</span>}<span class="keywordflow">else</span> <span class="keywordflow">if</span>(!b&amp;&amp;this.pendingRequest==0&amp;&amp;this.formSubmitted){c(this.currentForm).triggerHandler(<span class="stringliteral">&quot;invalid-form&quot;</span>,[<span class="keyword">this</span>]);this.formSubmitted=</div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">false</span>}},previousValue:<span class="keyword">function</span>(a){<span class="keywordflow">return</span> c.data(a,<span class="stringliteral">&quot;previousValue&quot;</span>)||c.data(a,<span class="stringliteral">&quot;previousValue&quot;</span>,{old:null,valid:<span class="keyword">true</span>,message:this.defaultMessage(a,<span class="stringliteral">&quot;remote&quot;</span>)})}},classRuleSettings:{required:{required:<span class="keyword">true</span>},email:{email:<span class="keyword">true</span>},url:{url:<span class="keyword">true</span>},date:{date:<span class="keyword">true</span>},dateISO:{dateISO:<span class="keyword">true</span>},dateDE:{dateDE:<span class="keyword">true</span>},number:{number:<span class="keyword">true</span>},numberDE:{numberDE:<span class="keyword">true</span>},digits:{digits:<span class="keyword">true</span>},creditcard:{creditcard:<span class="keyword">true</span>}},addClassRules:<span class="keyword">function</span>(a,b){a.constructor==String?this.classRuleSettings[a]=b:c.extend(this.classRuleSettings,</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;a)},classRules:<span class="keyword">function</span>(a){var b={};(a=c(a).attr(<span class="stringliteral">&quot;class&quot;</span>))&amp;&amp;c.each(a.split(<span class="stringliteral">&quot; &quot;</span>),<span class="keyword">function</span>(){<span class="keyword">this</span> in c.validator.classRuleSettings&amp;&amp;c.extend(b,c.validator.classRuleSettings[<span class="keyword">this</span>])});<span class="keywordflow">return</span> b},attributeRules:<span class="keyword">function</span>(a){var b={};a=c(a);<span class="keywordflow">for</span>(var d in c.validator.methods){var e;<span class="keywordflow">if</span>(e=d===<span class="stringliteral">&quot;required&quot;</span>&amp;&amp;typeof c.fn.prop===<span class="stringliteral">&quot;function&quot;</span>?a.prop(d):a.attr(d))b[d]=e;<span class="keywordflow">else</span> <span class="keywordflow">if</span>(a[0].getAttribute(<span class="stringliteral">&quot;type&quot;</span>)===d)b[d]=<span class="keyword">true</span>}b.maxlength&amp;&amp;/-1|2147483647|524288/.test(b.maxlength)&amp;&amp;<span class="keyword">delete</span> b.maxlength;<span class="keywordflow">return</span> b},metadataRules:<span class="keyword">function</span>(a){<span class="keywordflow">if</span>(!c.metadata)<span class="keywordflow">return</span>{};</div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;var b=c.data(a.form,<span class="stringliteral">&quot;validator&quot;</span>).settings.meta;<span class="keywordflow">return</span> b?c(a).metadata()[b]:c(a).metadata()},staticRules:<span class="keyword">function</span>(a){var b={},d=c.data(a.form,<span class="stringliteral">&quot;validator&quot;</span>);<span class="keywordflow">if</span>(d.settings.rules)b=c.validator.normalizeRule(d.settings.rules[a.name])||{};<span class="keywordflow">return</span> b},normalizeRules:<span class="keyword">function</span>(a,b){c.each(a,<span class="keyword">function</span>(d,e){<span class="keywordflow">if</span>(e===<span class="keyword">false</span>)<span class="keyword">delete</span> a[d];<span class="keywordflow">else</span> <span class="keywordflow">if</span>(e.param||e.depends){var f=<span class="keyword">true</span>;<span class="keywordflow">switch</span>(typeof e.depends){<span class="keywordflow">case</span> <span class="stringliteral">&quot;string&quot;</span>:f=!!c(e.depends,b.form).length;<span class="keywordflow">break</span>;<span class="keywordflow">case</span> <span class="stringliteral">&quot;function&quot;</span>:f=e.depends.call(b,b)}<span class="keywordflow">if</span>(f)a[d]=e.param!==undefined?</div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;e.param:<span class="keyword">true</span>;<span class="keywordflow">else</span> <span class="keyword">delete</span> a[d]}});c.each(a,<span class="keyword">function</span>(d,e){a[d]=c.isFunction(e)?e(b):e});c.each([<span class="stringliteral">&quot;minlength&quot;</span>,<span class="stringliteral">&quot;maxlength&quot;</span>,<span class="stringliteral">&quot;min&quot;</span>,<span class="stringliteral">&quot;max&quot;</span>],<span class="keyword">function</span>(){<span class="keywordflow">if</span>(a[<span class="keyword">this</span>])a[<span class="keyword">this</span>]=Number(a[<span class="keyword">this</span>])});c.each([<span class="stringliteral">&quot;rangelength&quot;</span>,<span class="stringliteral">&quot;range&quot;</span>],<span class="keyword">function</span>(){<span class="keywordflow">if</span>(a[<span class="keyword">this</span>])a[<span class="keyword">this</span>]=[Number(a[<span class="keyword">this</span>][0]),Number(a[<span class="keyword">this</span>][1])]});<span class="keywordflow">if</span>(c.validator.autoCreateRanges){<span class="keywordflow">if</span>(a.min&amp;&amp;a.max){a.range=[a.min,a.max];<span class="keyword">delete</span> a.min;<span class="keyword">delete</span> a.max}<span class="keywordflow">if</span>(a.minlength&amp;&amp;a.maxlength){a.rangelength=[a.minlength,a.maxlength];<span class="keyword">delete</span> a.minlength;<span class="keyword">delete</span> a.maxlength}}a.messages&amp;&amp;<span class="keyword">delete</span> a.messages;</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keywordflow">return</span> a},normalizeRule:<span class="keyword">function</span>(a){<span class="keywordflow">if</span>(typeof a==<span class="stringliteral">&quot;string&quot;</span>){var b={};c.each(a.split(/\s/),<span class="keyword">function</span>(){b[<span class="keyword">this</span>]=<span class="keyword">true</span>});a=b}<span class="keywordflow">return</span> a},addMethod:<span class="keyword">function</span>(a,b,d){c.validator.methods[a]=b;c.validator.messages[a]=d!=undefined?d:c.validator.messages[a];b.length&lt;3&amp;&amp;c.validator.addClassRules(a,c.validator.normalizeRule(a))},methods:{required:<span class="keyword">function</span>(a,b,d){<span class="keywordflow">if</span>(!this.depend(d,b))<span class="keywordflow">return</span><span class="stringliteral">&quot;dependency-mismatch&quot;</span>;<span class="keywordflow">switch</span>(b.nodeName.toLowerCase()){<span class="keywordflow">case</span> <span class="stringliteral">&quot;select&quot;</span>:<span class="keywordflow">return</span>(a=c(b).val())&amp;&amp;a.length&gt;0;<span class="keywordflow">case</span> <span class="stringliteral">&quot;input&quot;</span>:<span class="keywordflow">if</span>(<span class="keyword">this</span>.checkable(b))<span class="keywordflow">return</span> this.getLength(a,</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;b)&gt;0;<span class="keywordflow">default</span>:<span class="keywordflow">return</span> c.trim(a).length&gt;0}},remote:<span class="keyword">function</span>(a,b,d){<span class="keywordflow">if</span>(this.optional(b))<span class="keywordflow">return</span><span class="stringliteral">&quot;dependency-mismatch&quot;</span>;var e=this.previousValue(b);this.settings.messages[b.name]||(this.settings.messages[b.name]={});e.originalMessage=this.settings.messages[b.name].remote;this.settings.messages[b.name].remote=e.message;d=typeof d==<span class="stringliteral">&quot;string&quot;</span>&amp;&amp;{url:d}||d;<span class="keywordflow">if</span>(this.pending[b.name])<span class="keywordflow">return</span><span class="stringliteral">&quot;pending&quot;</span>;<span class="keywordflow">if</span>(e.old===a)<span class="keywordflow">return</span> e.valid;e.old=a;var f=<span class="keyword">this</span>;this.startRequest(b);var g={};g[b.name]=a;c.ajax(c.extend(<span class="keyword">true</span>,{url:d,</div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;mode:<span class="stringliteral">&quot;abort&quot;</span>,port:<span class="stringliteral">&quot;validate&quot;</span>+b.name,dataType:<span class="stringliteral">&quot;json&quot;</span>,data:g,success:<span class="keyword">function</span>(h){f.settings.messages[b.name].remote=e.originalMessage;var j=h===<span class="keyword">true</span>;<span class="keywordflow">if</span>(j){var i=f.formSubmitted;f.prepareElement(b);f.formSubmitted=i;f.successList.push(b);f.showErrors()}<span class="keywordflow">else</span>{i={};h=h||f.defaultMessage(b,<span class="stringliteral">&quot;remote&quot;</span>);i[b.name]=e.message=c.isFunction(h)?h(a):h;f.showErrors(i)}e.valid=j;f.stopRequest(b,j)}},d));<span class="keywordflow">return</span><span class="stringliteral">&quot;pending&quot;</span>},minlength:<span class="keyword">function</span>(a,b,d){<span class="keywordflow">return</span> this.optional(b)||this.getLength(c.trim(a),b)&gt;=d},maxlength:<span class="keyword">function</span>(a,</div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;b,d){<span class="keywordflow">return</span> this.optional(b)||this.getLength(c.trim(a),b)&lt;=d},rangelength:<span class="keyword">function</span>(a,b,d){a=this.getLength(c.trim(a),b);<span class="keywordflow">return</span> this.optional(b)||a&gt;=d[0]&amp;&amp;a&lt;=d[1]},min:<span class="keyword">function</span>(a,b,d){<span class="keywordflow">return</span> this.optional(b)||a&gt;=d},max:<span class="keyword">function</span>(a,b,d){<span class="keywordflow">return</span> this.optional(b)||a&lt;=d},range:<span class="keyword">function</span>(a,b,d){<span class="keywordflow">return</span> this.optional(b)||a&gt;=d[0]&amp;&amp;a&lt;=d[1]},email:<span class="keyword">function</span>(a,b){<span class="keywordflow">return</span> this.optional(b)||/^((([a-z]|\d|[!#\$%&amp;<span class="stringliteral">&#39;\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&amp;&#39;</span>\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(a)},</div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;url:<span class="keyword">function</span>(a,b){<span class="keywordflow">return</span> this.optional(b)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&amp;<span class="stringliteral">&#39;\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&amp;&#39;</span>\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&amp;<span class="stringliteral">&#39;\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&amp;&#39;</span>\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&amp;<span class="stringliteral">&#39;\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},</span></div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="stringliteral">date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a))},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return&quot;dependency-mismatch&quot;;if(/[^0-9 -]+/.test(a))return false;var d=0,e=0,f=false;a=a.replace(/\D/g,&quot;&quot;);for(var g=a.length-1;g&gt;=</span></div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="stringliteral">0;g--){e=a.charAt(g);e=parseInt(e,10);if(f)if((e*=2)&gt;9)e-=9;d+=e;f=!f}return d%10==0},accept:function(a,b,d){d=typeof d==&quot;string&quot;?d.replace(/,/g,&quot;|&quot;):&quot;png|jpe?g|gif&quot;;return this.optional(b)||a.match(RegExp(&quot;.(&quot;+d+&quot;)$&quot;,&quot;i&quot;))},equalTo:function(a,b,d){d=c(d).unbind(&quot;.validate-equalTo&quot;).bind(&quot;blur.validate-equalTo&quot;,function(){c(b).valid()});return a==d.val()}}});c.format=c.validator.format})(jQuery);</span></div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="stringliteral">(function(c){var a={};if(c.ajaxPrefilter)c.ajaxPrefilter(function(d,e,f){e=d.port;if(d.mode==&quot;abort&quot;){a[e]&amp;&amp;a[e].abort();a[e]=f}});else{var b=c.ajax;c.ajax=function(d){var e=(&quot;port&quot;in d?d:c.ajaxSettings).port;if((&quot;mode&quot;in d?d:c.ajaxSettings).mode==&quot;abort&quot;){a[e]&amp;&amp;a[e].abort();return a[e]=b.apply(this,arguments)}return b.apply(this,arguments)}}})(jQuery);</span></div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="stringliteral">(function(c){!jQuery.event.special.focusin&amp;&amp;!jQuery.event.special.focusout&amp;&amp;document.addEventListener&amp;&amp;c.each({focus:&quot;focusin&quot;,blur:&quot;focusout&quot;},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.handle.call(this,e)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)},handler:function(e){arguments[0]=c.event.fix(e);arguments[0].type=b;return c.event.handle.apply(this,arguments)}}});c.extend(c.fn,{validateDelegate:function(a,</span></div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="stringliteral">b,d){return this.bind(b,function(e){var f=c(e.target);if(f.is(a))return d.apply(f,arguments)})}})})(jQuery);</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Erzeugt am Don Dez 12 2013 10:15:59 für Homework Hub von &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>
